﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
namespace Socket_Tcp_服务端
{
    class Program
    {
        public static List<Connecter> connecterList = new List<Connecter>();//用于保存和管理所有连接器对象
        static void Main(string[] args)
        {
            //创建Socket对象
            Socket severSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
            //绑定本地IP和端口
            severSocket.Bind( new IPEndPoint(IPAddress.Any,8000));
            //置于监听模式,等待客户端链接
            severSocket.Listen(2);
            Console.WriteLine("开始监听....");
            //循环接待,会返回一个新的Socket对象和客户端通信
            while (true)
            {
                Socket clinetSocket = severSocket.Accept();//接待会返新的Socket对象用于通信,如果没有客户端链接就会一直阻塞再这里
                Connecter connecter = new Connecter(clinetSocket);//创建一个连接器对象用于手法消息
                connecterList.Add(connecter);//放进集合里面
               // Console.WriteLine("有新的链接:"+clinetSocket.RemoteEndPoint);//显示谁链接了
            }
        }
    }
}
